package com.fulu.game.bi.entity.po.market;

import java.io.Serializable;
import java.math.BigDecimal;

import com.fulu.game.bi.common.util.math.MathUtils;
import com.fulu.game.bi.entity.vo.market.CommonlyDisplayVO;
import lombok.Data;

@Data
public class NewUserRemainStat extends CommonlyDisplayVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 统计时间
    */
    private String statDate;

    /**
    * 渠道id
    */
    private Integer sourceId;

    /**
    * 标签id
    */
    private Integer labelId;

    /**
    * 注册类型系统
    */
    private Integer registerType;

    /**
    * 新用户数
    */
    private Integer newUserNum;

    /**
    * 1 注册 2付费
    */
    private boolean statType;

    /**
     * 1天内留存人数
     */
    private Integer allNum1;

    /**
     * 2天内留存人数
     */
    private Integer allNum2;

    /**
     * 3天内留存人数
     */
    private Integer allNum3;

    /**
     * 4天内留存人数
     */
    private Integer allNum4;

    /**
     * 5天内留存人数
     */
    private Integer allNum5;

    /**
     * 6天内留存人数
     */
    private Integer allNum6;

    /**
     * 7天内留存人数
     */
    private Integer allNum7;

    /**
     * 8天内留存人数
     */
    private Integer allNum8;

    /**
     * 9天内留存人数
     */
    private Integer allNum9;

    /**
     * 10天内留存人数
     */
    private Integer allNum10;

    /**
     * 11天内留存人数
     */
    private Integer allNum11;

    /**
     * 12天内留存人数
     */
    private Integer allNum12;

    /**
     * 13天内留存人数
     */
    private Integer allNum13;

    /**
     * 14天内留存人数
     */
    private Integer allNum14;

    /**
     * 15天内留存人数
     */
    private Integer allNum15;

    /**
     * 16天内留存人数
     */
    private Integer allNum16;

    /**
     * 17天内留存人数
     */
    private Integer allNum17;

    /**
     * 18天内留存人数
     */
    private Integer allNum18;

    /**
     * 19天内留存人数
     */
    private Integer allNum19;

    /**
     * 20天内留存人数
     */
    private Integer allNum20;

    /**
     * 21天内留存人数
     */
    private Integer allNum21;

    /**
     * 22天内留存人数
     */
    private Integer allNum22;

    /**
     * 23天内留存人数
     */
    private Integer allNum23;

    /**
     * 24天内留存人数
     */
    private Integer allNum24;

    /**
     * 25天内留存人数
     */
    private Integer allNum25;

    /**
     * 26天内留存人数
     */
    private Integer allNum26;

    /**
     * 27天内留存人数
     */
    private Integer allNum27;

    /**
     * 28天内留存人数
     */
    private Integer allNum28;

    /**
     * 29天内留存人数
     */
    private Integer allNum29;

    /**
     * 30天内留存人数
     */
    private Integer allNum30;

    private BigDecimal ratio(Integer allNum) {
        return MathUtils.ratio(allNum, newUserNum);
    }

    public BigDecimal getRemainRatio1() { return ratio(allNum1); }
    public BigDecimal getRemainRatio2() { return ratio(allNum2); }
    public BigDecimal getRemainRatio3() { return ratio(allNum3); }
    public BigDecimal getRemainRatio4() { return ratio(allNum4); }
    public BigDecimal getRemainRatio5() { return ratio(allNum5); }
    public BigDecimal getRemainRatio6() { return ratio(allNum6); }
    public BigDecimal getRemainRatio7() { return ratio(allNum7); }
    public BigDecimal getRemainRatio8() { return ratio(allNum8); }
    public BigDecimal getRemainRatio9() { return ratio(allNum9); }
    public BigDecimal getRemainRatio10() { return ratio(allNum10); }
    public BigDecimal getRemainRatio11() { return ratio(allNum11); }
    public BigDecimal getRemainRatio12() { return ratio(allNum12); }
    public BigDecimal getRemainRatio13() { return ratio(allNum13); }
    public BigDecimal getRemainRatio14() { return ratio(allNum14); }
    public BigDecimal getRemainRatio15() { return ratio(allNum15); }
    public BigDecimal getRemainRatio16() { return ratio(allNum16); }
    public BigDecimal getRemainRatio17() { return ratio(allNum17); }
    public BigDecimal getRemainRatio18() { return ratio(allNum18); }
    public BigDecimal getRemainRatio19() { return ratio(allNum19); }
    public BigDecimal getRemainRatio20() { return ratio(allNum20); }
    public BigDecimal getRemainRatio21() { return ratio(allNum21); }
    public BigDecimal getRemainRatio22() { return ratio(allNum22); }
    public BigDecimal getRemainRatio23() { return ratio(allNum23); }
    public BigDecimal getRemainRatio24() { return ratio(allNum24); }
    public BigDecimal getRemainRatio25() { return ratio(allNum25); }
    public BigDecimal getRemainRatio26() { return ratio(allNum26); }
    public BigDecimal getRemainRatio27() { return ratio(allNum27); }
    public BigDecimal getRemainRatio28() { return ratio(allNum28); }
    public BigDecimal getRemainRatio29() { return ratio(allNum29); }
    public BigDecimal getRemainRatio30() { return ratio(allNum30); }
}